package model

// 用户地址存储
type Address struct {
	Id             uint    `gorm:"column:id" form:"id" json:"id"`                                            // 主键自增标识
	Uid            uint    `gorm:"column:uid" form:"uid" json:"uid,omitempty"`                               // 用户ID标识
	Name           string  `gorm:"column:name;size:200" form:"name" json:"name"`                             // 姓名
	Phone          string  `gorm:"column:phone;size:100" form:"phone" json:"phone"`                          // 电话/手机
	Provinces      string  `gorm:"column:provinces;size:200" form:"provinces" json:"provinces"`              // 省名称
	ProvincesCodes int     `gorm:"column:provinces_codes" form:"provinces_codes" json:"provinces_codes"`     // 省code
	City           string  `gorm:"column:city;size:200" form:"city" json:"city"`                             // 市名称
	CityCodes      int     `gorm:"column:city_codes" form:"city_codes" json:"city_codes"`                    // 市code
	Area           string  `gorm:"column:area;size:200" form:"area" json:"area"`                             // 区名称
	AreaCodes      int     `gorm:"column:area_codes" form:"area_codes" json:"area_codes"`                    // 区代码
	Village        string  `gorm:"column:village;size:200" form:"village" json:"village,omitempty"`          // 街道名称
	VillageCodes   int     `gorm:"column:village_codes" form:"village_codes" json:"village_codes,omitempty"` // 街道代码
	Longitude      float64 `gorm:"column:longitude" form:"longitude" json:"longitude,omitempty"`             // 经度
	Latitude       float64 `gorm:"column:latitude" form:"latitude" json:"latitude,omitempty"`                // 维度
	Address        string  `gorm:"column:address;size:300" form:"address" json:"address"`                    // 详细地址
	CreatedAt      int64   `gorm:"column:created_at" form:"created_at" json:"created_at"`                    // 添加时间
	UpdatedAt      int64   `gorm:"column:updated_at" form:"-" json:"-"`                                      // 修改时间
	IsDefault      uint8   `gorm:"column:is_default" form:"is_default" json:"is_default"`                    // 是否为默认地址 1-是
	IsDeleted      uint8   `gorm:"column:is_deleted" form:"is_deleted" json:"is_deleted,omitempty"`          // 是否删除 1-是
	TagName        string  `gorm:"column:tag_name;size:200" form:"tag_name" json:"tag_name,omitempty"`       // 标签名称

	// 仅前端使用，不在数据库中存储
	UserName string `gorm:"-" form:"-" json:"user_name,omitempty"` // 用户名
	Nickname string `gorm:"-" form:"-" json:"nickname,omitempty"`  // 昵称
}

func (c *Address) TableName() string {
	return "address"
}

// 默认的地址tag标签列表
var AddressTagDefault []string = []string{
	"工作",
	"家庭",
}
